package com.day6.test11_lambda;

/**
 * @author 小坡
 * @date 2022/9/8  16:18
 **/
public class CalculatorDome {
    /*
    * lambda 实现带参数的方法  小括号中必须有接收的参数
    *           带返回值的方法， 就必须有返回值
    *
    * 1．首先存在一个接口 (Calculator)
    * 2．在该接口中存在一个抽象方法(calc)，该方法是有参数也有返回值
    * 3．在测试类(CalculatorDemo）中存在一个方法(useCalculator)
        方法的的参数是calcuLator类型的
        在方法内部调用了calcuLator的caLc方法
    *
    * */
    public static void main(String[] args) {
        useSum(new CalculatorDemo() {
            @Override
            public int sum(int a, int b) {
                return a + b;
            }
        });
        useSum((int a, int b) -> {
            return a + b;
        });
    }

    public static void useSum(CalculatorDemo calculatorDemo) {
        int result = calculatorDemo.sum(10, 20);
        System.out.println(result);
    }
}

interface CalculatorDemo {
    int sum(int a, int b);
}